package com.ott.tool;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;

import com.ott.Util.BaseUtil;
import com.ott.Util.FileUtil;

public class InitEnvironment implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		String FilePath = IndexForm.FilePath;
		String tomcatpath = IndexForm.tomcatpath;
		//TODO 执行shell脚本：同步服务器时区 时间,调用日志拆分脚本,调用定时删除日志脚本
		Boolean flag = (new ExecShell()).execShell(IndexForm.shellPathString+"deletelog.sh");
		if (flag) {
			IndexForm.textArea.append("同步时间、定时删除日志、拆分日志脚本执行成功\r\n");
		}else{
			IndexForm.textArea.append("同步时间、定时删除日志、拆分日志脚本执行失败\r\n");
		}
		try {
			File file = new File(IndexForm.textArea2.getText());
			if(file.isDirectory()){
				IndexForm.textArea.append("开始检查文件夹\r\n");
				LinkedList<File> list = new LinkedList<File>();
				File[] files = file.listFiles();
				for (File file2 : files) {
					String fileName=file2.getName();
				    String prefix=fileName.substring(fileName.lastIndexOf(".")+1);
				    if(prefix.equals("war")){
				    	list.add(file2);
				    }
				}
				
				if(list.size() > 0){
					File f = new File(FilePath+"config/");
					if (!f.exists()) {
				            f.mkdirs();
				        }
				    f = new File(FilePath+"config/config.properties");
				        // 创建文件
			        if (!f.exists()) {
			            try {
			                f.createNewFile();
			            } catch (IOException e1) {
			                e1.printStackTrace();
			            }
			        }
					//参数为要修改的文件路径  以及要修改的属性名和属性值 
			        //读取微信IP地址
			        IndexForm.textArea.append("开始生成外部配置文件 config.properties\r\n");
					Boolean boolean1 = UpdateFile.updatePro(FilePath+"config/config.properties","ip",IndexForm.field.getText());
					if(boolean1){
						IndexForm.textArea.append("外部配置文件 config.properties 生成成功\r\n");
					}else{
						IndexForm.textArea.append("外部配置文件 config.properties 生成失败\r\n");
					}
			       
					File f2 = new File("/opt/tms/upfinish/1.0.0/");
					if (!f2.exists()) {
				            f2.mkdirs();
			        }
					String warPath = FilePath + "upfinish/1.0.0/";
					for (File file2 : list) {
						File file3 = new File(warPath+file2.getName());
						if(file3.exists()){
							file3.delete();
						}
//						//移动分割日志文件到指定目录
//						if(file2.getName().equals("cronosplit")||file2.getName().equals("cronolog")){
//							File file4 = new File("/usr/local/sbin/");
//							if (!file4.exists()) {
//								file4.mkdir();
//							}
//							file2.renameTo(new File("/usr/local/sbin/"+file2.getName()));
//						}
						Boolean boolean2 = FileUtil.copyFile(IndexForm.textArea2.getText()+file2.getName(),warPath+file2.getName());
						if(boolean2){
							IndexForm.textArea.append(file2.getName()+"移动成功\r\n");
							
							//删除映射文件夹
							IndexForm.textArea.append("开始删除"+file2.getName()+"的映射文件夹\r\n");
							File directory = new File(tomcatpath+"webapps/"+file2.getName().substring(0,file2.getName().lastIndexOf(".")));
							if(directory.exists()){
								try {
									boolean b = FileUtil.deleteDir(new File(tomcatpath+"webapps/"+file2.getName().substring(0,file2.getName().lastIndexOf("."))));
									if(b){
										IndexForm.textArea.append(file2.getName()+"的映射文件夹删除成功\r\n");
										//生成tomcat的配置文件xml
										CreateXmlUtil cXmlUtil = new CreateXmlUtil();
										try {
											IndexForm.textArea.append("开始生成"+file2.getName().substring(0,file2.getName().lastIndexOf("."))+".xml\r\n");
											cXmlUtil.createXML(file2.getName().substring(0,file2.getName().lastIndexOf(".")),warPath+file2.getName(),tomcatpath+"conf/Catalina/localhost/");
											IndexForm.textArea.append(file2.getName().substring(0,file2.getName().lastIndexOf("."))+".xml生成成功\r\n");
										} catch (IOException e1) {
											IndexForm.textArea.append("tomcat的XML配置文件生成失败："+e1+"\r\n");
											return;
										}
									}else{
										IndexForm.textArea.append(file2.getName()+"的映射文件夹删除失败\r\n");
										return;
									}
								} catch (Exception e2) {
									e2.printStackTrace();
								}
								
							}else{
								//生成tomcat的配置文件xml
								CreateXmlUtil cXmlUtil = new CreateXmlUtil();
								try {
									IndexForm.textArea.append("开始生成"+file2.getName().substring(0,file2.getName().lastIndexOf("."))+".xml\r\n");
									cXmlUtil.createXML(file2.getName().substring(0,file2.getName().lastIndexOf(".")),warPath+file2.getName(),tomcatpath+"conf/Catalina/localhost/");
									IndexForm.textArea.append(file2.getName().substring(0,file2.getName().lastIndexOf("."))+".xml生成成功\r\n");
								} catch (IOException e1) {
									IndexForm.textArea.append("tomcat的XML配置文件生成失败："+e1+"\r\n");
									return;
								}
							}
						}
					}
				}else{
					IndexForm.textArea.append("文件夹中不存在war包\r\n");
				}
			}else{
				IndexForm.textArea.append("文件夹不存在\r\n");
			}
			
		} catch (Exception e2) {
			IndexForm.textArea.append(e2+"\r\n");
		}
	}

}
